For many years printer controllers were designed with dedicated logic or control circuitry. When it later became desirable to add new functions to the controller, a major redesign effort was required. In recent years, programmability has been designed into printer controllers primarily due to the advent of low cost microprocessors. This has resulted in the benefit of adding or changing functions by merely changing the program which directs the operation of the controller. Generally, the procedure for a hard copy printout in a data processing system begins when the system computer sends a sequence of commands to the printer controller. One of these commands is a status request to which the controller responds with a status report. If the report is good, the computer sends a command signalling the transfer of data to be printed together with such data. The printer controller acts to load the data into a buffer memory and then enters a print mode during which the data and various print commands are issued to the printer mechanism to print the data.
In prior art printers the controller architecture has limited the receipt of data to a single line of characters at a time. In some printers, exemplified by those described in U.S. Pat. Nos. 3,959,776 and 4,179,732, the line of characters is then processed and printed without further delay. Upon completion of the printing operation, the controller signals the computer and another line of data is sent, processed and printed and so on. In other prior art printers, exemplified by U.S. Pat. Nos. 4,005,390 and 4,031,519, the line of characters is processed into a textual and formatted line image and stored in a page buffer memory. The next line of data is then received and similary processed and stored in the page buffer. This procedure continues until the page buffer contains a complete textual and format image of the page to be printed. The controller then enters a printing mode in which the page buffer is addressed line by line to control the printing mechanism. These prior art printers which can accept only a line of text at a time and then must request another line place a severe demand on valuable computer time, particularly, if the text to be printed comprises tabular formats with short textual lines.
In prior art printers such as those mentioned above, overstrike print operations have been possible. In an overstrike print operation two or more print operations per character position are needed to form a resultant character image. These prior art printers have achieved the overstrike operation by following a textual character or characters to be overstriken with a backspace or carriage return character. For example, to achieve underlining of a single word requires the same number of backspace characters as there are characters in the word. This severely limits the number of textual characters per line as the controller and computer designs are set to operate on a limited number of characters per line.